MediaManagement [C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using WpfApplication1.ServiceReference1;
using System.Collections.ObjectModel;
using System.Net;
using Microsoft.Win32;
using System.IO;
namespace WpfApplication1
{
public partial class MediaManagement : UserControl
{
ServiceSample sample = new ServiceSample();
public MediaManagement()
{
InitializeComponent();
}
public MediaManagement(string login, string password)
{
InitializeComponent();
List<View_Group> listResult;
sample.GetGroup(out listResult, login, password);
treeGroup.ItemsSource = TreeNode.GetTreeNode(listResult);
}
private void treeGroup_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
List<View_Media> listResult;
sample.GetMedia(out listResult, (treeGroup.SelectedItem as TreeNode).Id ?? 0);
listResult.ForEach(x => x.ThumbnailPath = (x.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + x.ThumbnailPath) : "");
gridMedia.ItemsSource = new ObservableCollection<View_Media>(listResult);
}
private void btnUpload_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter =
"All Files (*.swf, *.swa, *.bmp, *.gif, *.jpg, *.jpeg, *.png, *.avi, *.qt, *.mpg, *.mpeg, *.m1v, *.mp2, *.wmv, *.qt, *.mov, *.mp4, *.m2v, *.3gp, *.3g2, *.divx)|*.swf; *.swa; *.bmp; *.gif; *.jpg; *.jpeg; *.png; *.avi; *.qt; *.mpg; *.mpeg; *.m1v; *.mp2; *.wmv; *.qt; *.mov; *.mp4; *.m2v; *.3gp; *.3g2; *.divx|" +
"Flash Files (*.swf, *.swa)|*.swf; *.swa|" +
"Image Files (*.bmp, *.gif, *.jpg, *.jpeg, *.png)|*.bmp; *.gif; *.jpg; *.jpeg; *.png|" +
"Video files (*.avi, *.qt, *.mpg, *.mpeg, *.m1v, *.mp2, *.wmv, *.qt, *.mov, *.mp4, *.m2v, *.3gp, *.3g2, *.divx)|*.avi; *.qt; *.mpg; *.mpeg; *.m1v; *.mp2; *.wmv; *.qt; *.mov; *.mp4; *.m2v; *.3gp; *.3g2; *.divx";
if(openFileDialog.ShowDialog() == true)
{
FileInfo fileInfo = new FileInfo(openFileDialog.FileName);
Stream fileStream = fileInfo.OpenRead();
byte[] buffer = new byte[Math.Min(fileInfo.Length, 4 * 1024 * 1024)];
int bytesRead = 0;
View_Media media = null;
bool isFirst = true; bool isLast = false;
while (!isLast)
{
bytesRead += fileStream.Read(buffer, 0, buffer.Length);
isLast = bytesRead >= fileInfo.Length;
sample.UploadMedia(out media, openFileDialog.SafeFileName, (treeGroup.SelectedItem as TreeNode).Id ?? 0, isFirst, isLast, buffer);
isFirst = false;
}
media.ThumbnailPath = (media.ThumbnailPath != null) ? (GlobalParam.MEDIA_URL + media.ThumbnailPath) : "";
(gridMedia.ItemsSource as ObservableCollection<View_Media>).Add(media);
}
}
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
sample.DeleteMedia(gridMedia.SelectedItem as View_Media,(treeGroup.SelectedItem as TreeNode).Id ?? 0);
treeGroup_SelectedItemChanged(null, null);
}
}
}